1. Field:
The disclosure relates generally to receive side scaling and more specifically to selecting a receive side scaling key having a highest packet distribution score that uniformly distributes incoming network packets across multiple central processing units in a multiprocessor device or across multiple processor cores in a multicore central processing unit.
2. Description of the Related Art:
Receive side scaling (RSS) is a network adapter technology enabling distribution of network receive processing across multiple central processing units in a multiprocessor data processing device, such as a computer. In other words, RSS enables packet receive processing to scale with the number of processors in the multiprocessor data processing device. As a result, RSS helps to make it possible to support higher network traffic loads.
RSS uses a hash function with an RSS hash key to determine the distribution of each incoming network packet. The hash function and resulting hash value provides the means for selecting a processor in the multiprocessor data processing device. The hash function computes a hash value over a defined area within a received network packet. The defined area may be contiguous or noncontiguous. RSS uses a number of least significant bits of the hash value to index an indirection table. RSS uses the values in the indirection table to assign the received network packet to a processor. In other words, the RSS indirection table identifies a particular processor in the multiprocessor device to process the received network packet. In addition, RSS includes a signature that provides added security. This signature protects the multiprocessor device from malicious remote hosts attempting to force the multiprocessor device into an unbalanced state.